1. Field of the Invention
The invention relates in general to client-server computer systems, and more particularly, to managing client application requests to database servers in a client-server computer system.
2. Description of Related Art
Computers are increasingly being used in the client-server configuration. In a client-server configuration, multiple computers are interconnected by a communication network, wherein certain computers perform client functions and other computers perform server functions. A client computer generates requests and a server computer processes the client's requests. A particular computer can at times a client and at other times a server.
One application of the client-server architecture is on-line transaction processing. Airline reservation and banking systems are classic examples of on-line transaction processing.
Another application is business information processing. For example, many businesses store information in decision support systems which include large databases containing information on their business, their customers and their competitors. The decision support databases are manipulated and queried for customer profiling, target marketing analysis, etc. Typically, decision support databases store and operate on large amounts of data.
The principal advantages of the client-server architecture include the distribution of work and the sharing of resources. Data, application programs, data storage devices, processing power, printers, communication subsystems, etc., can be shared. The client-server architecture also makes it possible to keep a centralized database, which is shared, as opposed to maintaining multiple copies of the same data, which incurs the overhead of insuring that the data remains consistent at all locations.
With continuing improvements in computer and communications technologies, the client-server architecture is being increasingly utilized. Computers can now be interconnected with local area networks and wide area networks, including wired telephone lines, cellular systems, satellite communication links, etc. The increased speed of communication networks that has been achieved have expanded the practical applications of client-server systems. Furthermore, improvements in distributed servers, in which multiple computers act as servers that individually or together process client requests have increased the applicability of the client-server architecture. For example, a distributed transaction processing system is possible using distributed servers.
Furthermore, recent development of industry standards have made open distributed systems possible. In an open system, various types of computers running under various operating systems can be interconnected to form an open distributed client-server system. Open distributed systems allow application developers to quickly create client-server database applications which can be run without modification against any database in an open distributed system. Open Database Connectivity (ODBC), available from Microsoft.RTM. Corporation, is a standard database access application programming interface (API) which makes open distributed systems possible.
Once significant cost associated with the client-server architecture is the cost of processing client requests on a database server. In client-server systems, a client generates a request which may include a login request, a query request, etc. The request is transmitted to a server via a communication network that interconnects the client and server computers. The server processes the request and transmits a response message to the client. Some of the query requests may be quite complex, and the response message may contain very large data sets.
The costs associated with processing client requests include communication network time (e.g., satellite, telephone line, and/or cellular communication links) and database server time. These costs are particularly acute in open systems where the ease of application development, combined with users nearly unrestricted ability to submit complex queries, often creates situations where sever resources are saturated due to processing large numbers of queries and networks are saturated due to communicating of large data sets. Furthermore, as more clients are simultaneously connected to a server system, the bandwidth of the communication network must be increased to accommodate the many clients.
Thus, in the client-server industry, there is an intensely felt need for managing client requests of database servers while still providing the advantages of open distributed system architecture.